<?php
class Catalog_Form_Wares extends Zen_Form
{
    /**
     * Создание формы
     */
    public function init ()
    {
        parent::init();
        $this->setName('folder');
        $this->setAttrib('id', 'folder');
        
        $label = Zen_Form_Element_Factory::get('label');
        $alias = Zen_Form_Element_Factory::get('alias');
        $stripe = Zen_Form_Element_Factory::getRadio(false,'Пометить ленточкой:',array('0'=>'Нет','1'=>'Новинка','2'=>'Экспресс-цена','3'=>'Люкс',),'stripe' );
        $top = Zen_Form_Element_Factory::getRadio(false,'Закрепить вверху списка:',array('1'=>'Да','0'=>'Нет'),'top' );
        $submit = Zen_Form_Element_Factory::get('submit');
		$alias = Zen_Form_Element_Factory::get('active');
		$gab_width = Zen_Form_Element_Factory::get('weight',false,'Ширина:','gab_width','в сантиметрах');
		$gab_length = Zen_Form_Element_Factory::get('weight',false,'Длина:','gab_length','в сантиметрах');
		$gab_height = Zen_Form_Element_Factory::get('weight',false,'Высота:','gab_height','в сантиметрах');
		$sit_height = Zen_Form_Element_Factory::get('weight',false,'Высота сидения:','sit_height','в сантиметрах');
		$sit_depth = Zen_Form_Element_Factory::get('weight',false,'Глубина сидения:','sit_depth','в сантиметрах');
		$sleep_width = Zen_Form_Element_Factory::get('weight',false,'Ширина спального места:','sleep_width','в сантиметрах');
		$sleep_length = Zen_Form_Element_Factory::get('weight',false,'Длина спального места:','sleep_length','в сантиметрах');
		$mat = Zen_Form_Element_Factory::get('label',false,'Материал:','mat');
        $images = new Zen_Form_Element_Imageloader('images',
        array('required' => false,
          	'label' => 'Изображения:',
        	'class'=>'zenimages',
        	'jQueryParams' => array(
            	'use_crop' => true,
            	'crop_width' => 300,
        		'crop_height' => 200
        	),
         ));
        $images->setFilters ( array ('StringTrim', 'StripTags' ));
        
        $sizes = new Zen_Form_Element_Imageloader('sizes',
        array('required' => false,
          	'label' => 'Размеры:',
        	'class'=>'zenimages',
        	'description'=>'Первая картинка-сложенный, вторая - разложенный',
        	'jQueryParams' => array(
            	'use_crop' => false
        	),
         ));
        $sizes->setFilters ( array ('StringTrim', 'StripTags' ));

        $discount = new Zend_Form_Element_Text('discount',
        array('required' => false,
          'label' => 'Скидка на товар:',
          'description'=>'Введите значение в % от 0-100, если скидки нет то "0"',
          'class'=>'zend_text ui-widget-content ui-corner-all',
         ));
		$discount->addValidator('Int',true);
		$discount->addValidator('Between',true,array('min'=>0,'max'=>100));
        $discount->setFilters (array('StringTrim','StripTags','Int'));
        
        $discount_start = new ZendX_JQuery_Form_Element_DatePicker(
                    			'discount_start',
                    			array(
                    			'description'=>'Дата в формате Год-месяц-день, для отмены оставьте поле пустым',
                    			'validators' => array(
                                	array('StringLength' , true , array(6 , 11 , 'utf-8')),
                                	array('Date',true,array('yyyy-MM-dd'))
                                ),
                    			'label'=>'Дата начала действия скидки:',
                    			'jQueryParams' => array('dateFormat'=>'yy-mm-dd'))
                			);
        $discount_start->setFilters ( array ('StringTrim', 'StripTags','MYSQLDate'));
                			
        $discount_end = new ZendX_JQuery_Form_Element_DatePicker(
                    			'discount_end',
                    			array(
                    			'description'=>'Дата в формате Год-месяц-день, для отмены оставьте поле пустым',
                    			'validators' => array(
                                	array('StringLength' , true , array(6 , 11 , 'utf-8')),
                                	array('Date',true,array('yyyy-MM-dd'))
                                ),
                    			'label'=>'Дата конца действия скидки:',
                    			'jQueryParams' => array('dateFormat'=>'yy-mm-dd'))
                			);
     	$discount_end->setFilters ( array ('StringTrim', 'StripTags','MYSQLDate'));
     	
        $res=new Mech_Model_Item();
		$data=$res->getSelectList();
		$data[0]='Без механизма';
		$mech = Zen_Form_Element_Factory::getSelect('mech', false, 'Механизм трансформации: ',$data,'Без механизма','mech');
		
		$res=new Catalog_Model_Tree();
        $data=$res->getSelectData();
		$near = Zen_Form_Element_Factory::getMultiSelect('near', false, 'В комплекте идет: ',$data['data'],'Без механизма','near','Выберите несколько товаров, зажав CTRL')
			->setAttrib('disable', $data['disabled']);
		
		$chear = Zen_Form_Element_Factory::getRadio(false,'Есть кресло?:',array('1'=>'Да','0'=>'Нет'),'chear' );
		$price = Zen_Form_Element_Factory::get('weight',true,'Цена:','price'); 
		
		$info = Zen_Form_Element_Factory::get('text',false,'Описание товара:','info');
		
 		$gabForm = Zen_Form_Element_Factory::getSubForm('Габариты товара', 'folder')
        	->addElements(array($sizes,$gab_length,$gab_width,$gab_height,$sleep_width,$sleep_length,$sit_height,$sit_depth,))
     		->addDisplayGroup(array('sleep_width','sleep_length'), 'gab_sleep', 
        		array('legend' => 'Размер спального места','class'=>'ui-corner-all ui-widget-content')
        	)
        	->addElements(array($submit));
        $gabForm->getDisplayGroup('gab_sleep')->removeDecorator('DtDdWrapper');
        
     	$file3d = Zen_Form_Element_Factory::get('elfinder')->setLabel('3 D:');
        
     	$subForm1 = Zen_Form_Element_Factory::getSubForm('Параметры товара', 'folder')
        	->addElements(array($label,$alias,$price,$info,$stripe,$top,$mat,$mech,$near,$chear,$submit));
        
		$subForm2 = Zen_Form_Element_Factory::getSubForm('Изображения', 'folder')
        	->addElements(array($images,$file3d,$submit));
        
        $subForm3 = Zen_Form_Element_Factory::getSubForm('Скидки', 'folder')
       		->addElements(array($discount,$discount_start,$discount_end,$submit));
        
     	$this->setDecorators(array(
    	'FormElements',
    	array('TabContainer', array(
        	'id' => 'tabContainer'
    	)),
    	'Form',
		));
       
		$active = Zen_Form_Element_Factory::get('active');
		$public = Zen_Form_Element_Factory::getSubForm('Настройки публикации', 'folder')
        	->addElements(array($active,$submit));
		
       	$this->addSubForm($subForm1, 'subForm1');
       	$this->addSubForm($gabForm, 'gabForm');
       	$this->addSubForm($subForm2, 'subForm2');
 		$this->addSubForm($subForm3, 'subForm3');
        $this->addSubForm($public, 'public');

    }
}